1. Technical Field
Embodiments of the invention relate to the field of debugging electronic circuits, and more specifically to user-defined triggering logic in a hardware description language.
2. Background Information and Description of Related Art
For the design of digital circuits, designers often employ computer aided techniques. Standard languages, such as Hardware Description Languages (HDLs), have been developed to describe digital circuits to aid in the design and simulation of complex digital circuits. As device technology continues to advance, various product design tools have been developed to adapt HDLs for use with newer devices and design styles.
After the HDL code is written and compiled, the design of an integrated circuit (IC) or a system which includes multiple ICs must be verified to be correct. Debugging applications have been developed to aid in the verification process. Using the debugging applications, designers may add logic to the circuits for debugging purposes. For example, triggering logic may be added to the circuits. The triggering logic detects when one or more defined triggering events of interest have occurred. The triggering events are triggered when one or more triggering conditions are met. Each triggering condition is defined by one or more states of one or more signals in the circuit. When a triggering event is detected, signals of interest may be sampled and captured for error detection and correction. The triggering logic may include one or more configurable registers that may be connected to a debugger during the verification process. The debugger allows for the programming of control signals via the configurable registers to trigger the triggering events of interest.
The debugging applications described above allow a user to specify the data signals that will trigger an event of interest. A limited number of predetermined parameters, such as width or whether the triggering logic will have a counter, a state machine, or complex comparators, may be selected by the user. After obtaining these parameters, the debugging applications will typically generate a triggering logic block that implements the logic and detects for the desired triggering events. Since the logic elements in the triggering block are determined and generated by the debugging application, the user is limited in the ability to customize the design of the triggering logic to meet the user's needs.